package Modele;

public class SoutienOffensif extends Soutien {
	private Region regionAttaqueParSoutenu;

	public SoutienOffensif(Puissance commanditaire, String typeU, Region regOr,
			Region regSoutenu, Region regAttaqueParSoutenu) {
		super(commanditaire, typeU, regOr, regSoutenu);
		this.regionAttaqueParSoutenu = regAttaqueParSoutenu;
	}

	public Region getRegionAttaqueParSoutenu() {
		return regionAttaqueParSoutenu;
	}

	@Override
	public String getTypeOrdre() {
		return "Soutien Offensif";
	}
	
	@Override
	public boolean verifValidite() {
		//FR A SER S TRI - BUD
		//Si la region soutenu possede une unite (-> Unite sur TRI)
		if(super.getRegionSoutenu().getOccupant() != null){
			//Si region et region attaque frontalier
			if(super.getRegOrigine().isFrontalier(this.regionAttaqueParSoutenu)){
				//Terrestre ne peut pas soutenir marrin
				if(super.getRegOrigine().isTerrestre() && !this.regionAttaqueParSoutenu.isTerrestre()){
					return false;
				}
				return true;
			}
		}
		return false;
	}


	public String toString() {
		return "Ordre de Soutien offensif de la puissance "
				+ super.getCommanditaire() + " avec une unite de type "
				+ super.getTypeUnite() + "Origine : " + super.getRegOrigine()
				+ " attaque soutenu : " + super.getRegDestination() + " vs "
				+ this.regionAttaqueParSoutenu;
	}

}
